<?php //Service qui fournit une liste d'étudiants à partir d'un id de category.
require_once('lib/mylib.php');
require_once(dirname(__FILE__) . '/../../config.php');//Pour reprendre le contexte moodle
global $SESSION, $COURSE;

//On détermine le contexte
$contextGlobal = get_context_instance(CONTEXT_SYSTEM, $COURSE->id);
$contexCourse = get_context_instance(CONTEXT_COURSE, $COURSE->id);

//On détermine si l'utilisateur courant a le droit de demander le listing des etudiant. On fait ça pour protéger le service des demandes qui seraient faites par autre chose que la plateforme moodle.
//Par contre je n'ai pas trouvé le moyen de se remettre dans le contexte du bloc. Donc les droits de se contexte ne sont pas ppris en compte :/
if(has_capability('block/connexion_tracking:viewtracks', $contextGlobal) || has_capability('block/connexion_tracking:viewtracks', $contexCourse)){	
		
	header('Content-Type: text/xml; charset=UTF-8');
	
	if (isset($_GET['category']) && isset($_GET['portee'])) {
	  $categoryid = $_GET['category'];
	  $portee = $_GET['portee'];
	  //Requete de listing des etudiants d'une categorie ou de toutes les categories.
		
		//On crée un nouvel objet DOM pour créer une réponse en XML
		$dom = new DOMDocument('1.0', 'utf-8');
	 
		//La racine du message sera <message>
		$message = $dom->createElement('message');
		$message = $dom->appendChild($message);

		switch($portee){
			//Portee vaut 0, on liste tout le monde
			case 0: 
				$entete = get_string('tousEE', 'block_connexion_tracking');
                $portee = "";
			break;
			
			//Portee vaut 1, on liste que les enseignants
			case 2:
				$entete = get_string('ens', 'block_connexion_tracking');
                $portee = "AND roleid = 3";
			break;
			
			//Porte vaut 2, on liste que les etudiants
			case 1:
				$entete = get_string('etu', 'block_connexion_tracking');
                $portee = "AND roleid = 5";
			break;
		}

        get_cat_all_cascadeXML($categoryid, &$dom, $portee);
		
		deleteDuplicatesXML(&$dom);
        $tmp = $dom->getElementsByTagName('student');
        if($tmp->length != 0){
            $messageList = $dom->getElementsByTagName('message');
            $studentList = $dom->getElementsByTagName('student');
            $firstChild = $studentList->item(0);
            $message = $messageList->item(0);
            $etudiant = $dom->createElement('student');
            $etudiant->setAttribute('lastname', $entete);
            $i = 0;
            foreach($studentList as $student){
                $i++;
            }
            $etudiant->setAttribute('firstname', $i);
            $preums = $firstChild->parentNode->insertBefore($etudiant, $firstChild);
        }else{
            $entete = get_string('none', 'block_connexion_tracking');
            $messageList = $dom->getElementsByTagName('message');
            $message = $messageList->item(0);
            $etudiant = $dom->createElement('student');
			$etudiant = $message->appendChild($etudiant);//On ins�re l'�tuduant
			//On rempli ses attributs
			$etudiant->setAttribute('firstname', $entete);
            $etudiant->setAttribute('lastname', ''
            );
        }
		echo    $dom->saveXML(); //Si pas de XSLT

	}
}

?>
